{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "ef7a89f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import math\n",
    "import matplotlib.pyplot as plt\n",
    "from sympy import symbols, cos, sin\n",
    "from sympy.plotting import plot_parametric\n",
    "from math import sin,cos\n",
    "import io\n",
    "import cv2\n",
    "import pykalman\n",
    "from scipy import optimize\n",
    "import matplotlib as mpl\n",
    "from numpy import array, arange, abs as np_abs\n",
    "from numpy.fft import rfft, rfftfreq\n",
    "from math import sin, pi\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f8b75df",
   "metadata": {},
   "source": [
    "# Лабораторная работа 2.2\n",
    "C помощью ДПФ нахождение численно модуля непрерывного преобразования Фурье (амплитудный спектр) сигналов. Сравнение графиков теоретических и численных значений"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95c1d21d",
   "metadata": {},
   "source": [
    "# Функция 1\n",
    "$$ e^{-t^2}$$\n",
    "$$ \\int_{- \\inf}^{ \\inf} e^{-t^2} \\cdot e^{-2  \\pi i k  t}dt = \\sqrt(\\pi)e^{- \\pi^2 w^2} $$ - рассчитано в maple"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "b8d85e31",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.02\n"
     ]
    }
   ],
   "source": [
    "l = -10\n",
    "r = 10\n",
    "x = []\n",
    "N = 1000\n",
    "s = (r -l)/N\n",
    "print(s)\n",
    "for i in range(N):\n",
    "    x.append(l+s*i)\n",
    "#координаты в частотном пространстве\n",
    "d = 1 / (r-l)\n",
    "fx = [d * p for p in range(int(-N / 2), int(N / 2))] # не включая последнюю точку"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "d5b8b447",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# График модуля непрерывного преобразования фурье\n",
    "fig1 = plt.figure(1)\n",
    "axes1 = fig1.subplots(1, 1)\n",
    "sin_sig = array([math.sqrt(math.pi) * math.exp( -(t)**2 * math.pi**2) for t in x])\n",
    "axes1.plot(fx, sin_sig, 'r')\n",
    "axes1.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "a667a357",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAf3klEQVR4nO3df5Ac5Z3f8fd3Z3ZXEuKHQLBgIZAA2RgfBpsNnMvOsXYwFi4HcomdoHIu2LFPycUkuXMqKYirwIXrKr5QyeUS8GGVrcLJ3cFdnMOnqxIHxGaAOsBIGIGNMKAIgSQDAq1AzK5md2fnmz+6e7Zndn6tdnanu/fzqtqame6e2efZkT777LefedrcHRERya6+XjdAREQWloJeRCTjFPQiIhmnoBcRyTgFvYhIxuV73YBGVq9e7evWret1M+ZkbGyME044odfNWFTq89KgPqfD008//ba7n95oXyKDft26dezcubPXzZiTQqHAyMhIr5uxqNTnpUF9Tgcze7XZPpVuREQyTkEvIpJxCnoRkYxT0IuIZJyCXkQk4xT0IiIZp6AXEck4Bb1Ih+7/41f469srvW6GyJy1/cCUmW0FPgcccvdfa7D/3wNfjL3eB4HT3X3UzPYB7wHTQNndh7vVcJHF9tl/tR5Yz3955x045ZQet0akc52M6O8GNjbb6e63u/ul7n4pcDPwiLuPxg75ZLhfIS/pNTU1c3/Xrp41Q+R4tA16d38UGG13XGgTcM+8WiSSRPv3V+8Wd7/Ww4aIzF3X1roxsxUEI/8bY5sdeNDMHPiuu29p8fzNwGaAoaEhCoVCt5q2KIrFYuraPF9Lqc8n79oF/C4ATz6wm/xFhR62ZnEtpfc5krU+d3NRs78P/G1d2eYT7n7QzM4AHjKzX4Z/IcwS/hLYAjA8POxpW1AojYsgzdeS6vORI9W7Xnnf0uk3S+x9DmWtz92cdXM9dWUbdz8Y3h4C7gMu7+L3E1k8saB/+y3vYUNE5q4rQW9mJwNXAn8V23aCmZ0Y3QeuBn7Rje8nsuhGZ/5QLb1b6mFDROauk+mV9wAjwGozOwDcCvQDuPtd4WG/CTzo7mOxpw4B95lZ9H3+zN3/pntNF1lEsRH9saPlHjZEZO7aBr27b+rgmLsJpmHGt+0FLjnehokkSfnwu9X7x0rWw5aIzJ0+GSvSgfFDxer9kio3kjIKepEOFA/PpHtpQiN6SRcFvUgHjh2ZqN4vTedrPykrknAKepEOjL0zE+wTDMB77/WwNSJzo6AX6cDY+Mz9EssU9JIqCnqRDhw7NnN/gmVw9GjvGiMyRwp6kQ6Ml2b+q0wwqBG9pIqCXqSdyUnGK4MzD1Wjl5RR0Iu0MzYW1OVDEwyodCOpoqAXaadY5BjLqw8nVbqRlFHQi7QzNhaEe6hMHsbHWzxBJFkU9CLtjI0FdfmQgl7SRkEv0s7YGFOx9f+m6audbymScAp6kXbGxoJRfGiafgW9pIqCXqSdutLNdE5BL+mioBdpp35Eb3kFvaSKgl6knbExpuIjetOIXtJFQS/Szvj47BG9Zt1IirQNejPbamaHzKzhhb3NbMTM3jWzXeHXLbF9G83sRTPbY2Y3dbPhIoumVKoJ+orlNKKXVOlkRH83sLHNMY+5+6Xh120AZpYD7gSuAS4CNpnZRfNprEhPlEp1pRvV6CVd2ga9uz8KjB7Ha18O7HH3ve4+CdwLXHccryPSW6US5dzMJ2OnNaKXlOlWjf5jZvasmd1vZh8Kt60B9seOORBuE0mXUompatA70yjoJV3y7Q9p62fAue5eNLPPAj8CNsz1RcxsM7AZYGhoiEKh0IWmLZ5isZi6Ns/XUunz+/ftY4Irq4/LFRgfHeWpJdB3WDrvc1zW+jzvoHf3o7H7283sO2a2GjgIrI0dena4rdnrbAG2AAwPD/vIyMh8m7aoCoUCaWvzfC2ZPn//+9C/DCbBDMj1swKWRt9ZQu9zTNb6PO/SjZmdaWYW3r88fM3DwA5gg5mtN7MB4Hpg23y/n8iiK5WY6gtKN2ZQIafplZIqbUf0ZnYPMAKsNrMDwK1AP4C73wV8HvgdMysDx4Dr3d2BspndCDwA5ICt7v78gvRCZCGVSkz39QNg5lQw1eglVdoGvbtvarP/DuCOJvu2A9uPr2kiCTExwZQF0yurI/pjx8A9rOWIJJs+GSvSTmxE39cXjugBJiZ62CiRzinoRdoplYIPSQF9fVCJ/tuofCMpoaAXaadUomzBiD6XcyoejugV9JISCnqRdmIjejPHo9KNZt5ISijoRdqZmKguatbXh0b0kjoKepF26kf0CnpJGQW9SDulUrC+DdHJWAW9pIuCXqSdWNAHI/pwu4JeUkJBL9JKpQKTk0yTwyz4fJRKN5I2CnqRViYnAWKlGyca0FMq9aZNInOkoBdpJQzzSjii7+uLnYxV0EtKKOhFWgnDfNr7wqBnpkavoJeUUNCLtBIFffhfRaUbSSMFvUgr1dJNX+xkbO0+kaRT0Iu0Eq5QGZVucrlweqWZgl5SQ0Ev0ko0oncLR/QOGCxbpqCX1FDQi7RSLd0YfX3BiB4Igl7z6CUlFPQirURBX6mbdaMRvaSIgl6kldiIPppHDyjoJVXaBr2ZbTWzQ2b2iyb7v2hmz5nZz83scTO7JLZvX7h9l5nt7GbDRRZFeDI2qtHXlG4U9JISnYzo7wY2ttj/CnClu18MfAvYUrf/k+5+qbsPH18TRXoodjK2ry8o3QAKekmVfLsD3P1RM1vXYv/jsYdPAmd3oV0iyRCGuXvtydjKwDL6FPSSEt2u0X8FuD/22IEHzexpM9vc5e8lsvCqI3pqavSTgydqRC+p0XZE3ykz+yRB0H8itvkT7n7QzM4AHjKzX7r7o02evxnYDDA0NEShUOhW0xZFsVhMXZvnayn0ee3zz3M+MFWukGca9zIAr49NcdrYW/ws4/2HpfE+18tan7sS9Gb2YeB7wDXufjja7u4Hw9tDZnYfcDnQMOjdfQthfX94eNhHRka60bRFUygUSFub52tJ9PmxxwDo68sxOGgMDAR/BJ84tJaT9r+d/f6zRN7nOlnr87xLN2Z2DvCXwG+5+0ux7SeY2YnRfeBqoOHMHZHEKpUgn6dSqa3RlwZUupH0aDuiN7N7gBFgtZkdAG4F+gHc/S7gFuA04DtmBlAOZ9gMAfeF2/LAn7n73yxAH0QWTqkEg4P4NDVBP5VfoaCX1Ohk1s2mNvu/Cny1wfa9wCWznyGSIqUSLFuGF2uDvtS/UksgSGrok7EirURB74Tz6DWil/RR0Iu0MjFRDfpcDvL5cHplfrmCXlJDQS/SSt2IPirdTORWQLkcfIkknIJepJXoZGx96Sa3LNgfroUjkmQKepFW6kb0UemmGvQq30gKKOhFWglr9BDU6GdG9MuD/Qp6SQEFvUgrTWr0U7nBmf0iCaegF2klrNFDMKKvBn2fSjeSHgp6kVZiI/pgemUFgKm+gZn9IgmnoBdpJQx6iII+2DxpGtFLeijoRVqJnYytqdFbOKLXMgiSAgp6kVbqRvS5XFi6MZVuJD0U9CKtNDkZW7b+mf0iCaegF2lmehqmpqgMzK7RTynoJUUU9CLNhMsblAdWAEHIR7NuyijoJT0U9CLNhEFfyp8A1JZuJhX0kiIKepFmwhCfzAcj+vg8eo3oJU0U9CLNREHfF591E06v9FzNMSJJpqAXaSYM8al8vEYfzrqphGdmFfSSAh0FvZltNbNDZvaLJvvNzP67me0xs+fM7KOxfTeY2cvh1w3darjIgotG9Ln4rJsw6MsE8+sV9JICnY7o7wY2tth/DbAh/NoM/DGAmZ0K3ApcAVwO3Gpmq463sSKLKjwZOxkuSRz/wFQ16PXJWEmBjoLe3R8FRlscch3wPz3wJHCKmZ0FfAZ4yN1H3f0I8BCtf2GIJEdUuglH9P390N+vEb2kT75Lr7MG2B97fCDc1mz7LGa2meCvAYaGhigUCl1q2uIoFoupa/N8Zb3Ppz71FB8Gnn1xH/B3ePvtN5iaGgfg1Vd/xbg77736Ki9k+GcA2X+fG8lan7sV9PPm7luALQDDw8M+MjLS2wbNUaFQIG1tnq/M9/mddwA4/4OXALBmzZmcdNLrAJxxxvtYsWoVK04+maEs/wxYAu9zA1nrc7dm3RwE1sYenx1ua7ZdJPmik7HhAmb5/EyNfnoalW4kNboV9NuAfxbOvvl14F13fx14ALjazFaFJ2GvDreJJF94MnaqL1jUrGYJBNXoJUU6Kt2Y2T3ACLDazA4QzKTpB3D3u4DtwGeBPcA48OVw36iZfQvYEb7Ube7e6qSuSHJEJ2MtHvTBydjpaWD5chgb61XrRDrWUdC7+6Y2+x34WpN9W4Gtc2+aSI9Vgz5Y7iCYdVM3oj98uFetE+mYPhkr0kxUo68EQZ/Pa3qlpJOCXqSZaETPTNDrk7GSRgp6kWYmJqC/n6lKsIBZf//MyVjNupE0UdCLNBNeL3ZqKngYn3VTDXotgSApoKAXaSa8Xmy5HDzM52FgIDbrRiN6SQkFvUgzpRIsX14d0QelmwZB7967Nop0QEEv0kxYuolG9AMD0Bf+j6kGvTvV3wQiCaWgF2kmDPrJyeBhPvapk+qsm+g4kQRT0Is0c+xYzcnY/v6ZXdURPSjoJfEU9CLN1JVu4kFfqRAsgRAdJ5JgCnqRZuqCPl660Yhe0kRBL9JMkxG9mYJe0kVBL9JMOL0yCvrBwZldlQoKekkNBb1IM3WfjG06otenYyXhFPQizbQ4GavSjaSJgl6kmXB6ZaMavUo3kiYKepFmWpyMVdBLmijoRRpxD5YpXrYsKNMQLIEACnpJHwW9SCPhhcHjs240ope06ijozWyjmb1oZnvM7KYG+//QzHaFXy+Z2TuxfdOxfdu62HaRhROFd6x0E02vrAa9PhkrKdH24uBmlgPuBD4NHAB2mNk2d98dHePuvxc7/l8DH4m9xDF3v7RrLRZZDA2CPl660awbSZNORvSXA3vcfa+7TwL3Ate1OH4TcE83GifSM9Hc+FiNflbpJhriK+gl4dqO6IE1wP7Y4wPAFY0ONLNzgfXAT2Kbl5nZTqAMfNvdf9TkuZuBzQBDQ0MUCoUOmpYcxWIxdW2eryz3ecWrr3I5sHvvXt588zBwGjt3/i0DA0Xcp5mYmKbwyOP8Rn8/+196iVcy+nOAbL/PzWStz50E/VxcD/zQ3adj285194Nmdh7wEzP7ubv/v/onuvsWYAvA8PCwj4yMdLlpC6tQKJC2Ns9Xpvv8zDMAXPTRj3LKU6cBMDLycZ57rkAulyOfzwV9X7GCc884g3Oz+nMg4+9zE1nrcyelm4PA2tjjs8NtjVxPXdnG3Q+Gt3uBArX1e5FkitXo66dX9vWFpZtwv5ZAkKTrJOh3ABvMbL2ZDRCE+azZM2Z2IbAKeCK2bZWZDYb3VwMfB3bXP1ckcaKgX768GvTRude+vthlYnWBcEmBtqUbdy+b2Y3AA0AO2Oruz5vZbcBOd49C/3rgXveaKyV/EPiumVUIfql8Oz5bRySxGsy6idajr56MDfcr6CXpOqrRu/t2YHvdtlvqHn+zwfMeBy6eR/tEeqNB6SbS10c1/BX0kgb6ZKxIIw2mV0bMVLqRdFHQizTSZkSvoJc0UdCLNBIL+mo9PlQT9MuXK+gl8RT0Io1oRC8ZoqAXaSQ2vbJSCeryEQW9pI2CXqSRUilI9/7+mRk2oVkfmFLQS8Ip6EUaCS8jiJlG9JJ6CnqRRsLLCAKzgj6Xix2nJRAkBRT0Io3Egl4nYyXtFPQijbQY0c8K+slJZs3BFEkQBb1II6VS9VKBbUs3MHONWZEEUtCLNFJXuqkP+poRfXS8SEIp6EUaaVO6qVLQSwoo6EUaiaZXEozem47ow/KOgl6STEEv0kipVL34t0b0knYKepFGxsfhhBOAIOjj4d7wZKyCXhJMQS/SyPg4rFgBdDjrRkEvCaagF2lkbKw6onevHdHn49dli4Jen46VBFPQizTSwYi+XEYjekmFjoLezDaa2YtmtsfMbmqw/0tm9paZ7Qq/vhrbd4OZvRx+3dDNxossiEqlZY0+GtGXSijoJRXaXhzczHLAncCngQPADjPb5u676w79c3e/se65pwK3AsOAA0+Hzz3SldaLLIQotGMj+nhdvr8/uB0fh5UKekmBTkb0lwN73H2vu08C9wLXdfj6nwEecvfRMNwfAjYeX1NFFsn4eHAbG9HHg35gILjViF7Sou2IHlgD7I89PgBc0eC4f2RmvwG8BPyeu+9v8tw1jb6JmW0GNgMMDQ1RKBQ6aFpyFIvF1LV5vrLa58E33uBjwC9fe403CgXK5b9LuVymUHiCYrHIkSOHgDN45JGfct7KX/Fx4KXnnuNXGfxZQHbf51ay1udOgr4Tfw3c4+4TZvYvgB8An5rLC7j7FmALwPDwsI+MjHSpaYujUCiQtjbPV2b7/MILAFx42WVcODKCGaxYkWNkZIRCocCaNWcAcPHFV3DpeUcBeP855/D+LP4syPD73ELW+txJ6eYgsDb2+OxwW5W7H3b3aPm+7wGXdfpckcQZGwtum9Too9LNsWNoCQRJhU6CfgewwczWm9kAcD2wLX6AmZ0Ve3gt8EJ4/wHgajNbZWargKvDbSLJVVejd6+dO18T9Pl8MCVHQS8J1rZ04+5lM7uRIKBzwFZ3f97MbgN2uvs24N+Y2bVAGRgFvhQ+d9TMvkXwywLgNncfXYB+iHRP3Yi+PujDJXCCJejNdJUpSbyOavTuvh3YXrftltj9m4Gbmzx3K7B1Hm0UWVwdjuir2a6gl4TTJ2NF6jUY0TedXgm6QLgknoJepF7diB4al240ope0UNCL1IuCPhzRw8ynYaFB0C9fPvMckQRS0IvUi5VuKpXgbqOgr14PfOVKKBYXrXkic6WgF6k3Ph4U4vN5JieDTfGgj1Y9iPZx4okKekk0Bb1IvbGxatkmqsi0LN2ceCK8997itU9kjhT0IvViSxRHYd50Hj0EpRsFvSSYgl6kXmxEH82ajKZUQpPSjYJeEkxBL1IvNqJvFfTVEb2CXhJOQS9Sr1hsGfTROmZTU+GGE08MhvfVIb5IsijoReq99x6cdBIwhxE9aOaNJJaCXqTe0aPV8G41oq8O4FeuDG5VvpGEUtCL1IuN6KNZN9FMG2gQ9NGIXkEvCaWgF6l39Gg16KPyTKMPTNXU6EFBL4mloBeJq1SCWnsY3q1G9Ap6SQsFvUhcdEK1RekmWuusGvRRjV4nYyWhFPQicUeDi31Ho/SodNMy6DWil4RT0IvERWFdN6KP6vIwsxyCgl7SQkEvEtfBiD6ioJe06CjozWyjmb1oZnvM7KYG+79uZrvN7Dkz+7GZnRvbN21mu8Kvbd1svEjX1Y3ooymUjYK+XGZmZz6voJfEantxcDPLAXcCnwYOADvMbJu7744d9gww7O7jZvY7wH8G/km475i7X9rdZosskCYj+njpBsAsFvRmWu9GEq2TEf3lwB533+vuk8C9wHXxA9z9YXePrqX2JHB2d5spskiOHAluV60CZkb09UEPsaAHOOUUeOedhWyZyHFrO6IH1gD7Y48PAFe0OP4rwP2xx8vMbCdQBr7t7j9q9CQz2wxsBhgaGqJQKHTQtOQoFoupa/N8ZbHPa3fs4HzgseefZ3rvXvbuvQA4mxdffJZC4Ui1z2ZXcvToOIXCDgAu6+9n8uWX+XnGfh6Qzfe5ncz12d1bfgGfB74Xe/xbwB1Njv2nBCP6wdi2NeHtecA+4Px23/Oyyy7ztHn44Yd73YRFl8k+33yzez7vXqm4u/uXv+wO7o88EuyO+pzPu593Xux5V13l/rGPLW5bF0km3+c20thnYKc3ydROSjcHgbWxx2eH22qY2VXAN4Br3T1a1w93Pxje7gUKwEc6/i0ksthGR4OyjRkwM73ylFNqD8vlYqtXQvCc0dFFaaLIXHUS9DuADWa23swGgOuBmtkzZvYR4LsEIX8otn2VmQ2G91cDHwfiJ3FFkuXIETj11OrDaPXKk0+uPSyXi02vhOA5UX1fJGHa1ujdvWxmNwIPADlgq7s/b2a3EfypsA24HVgJ/G8LRkKvufu1wAeB75pZheCXyre9draOSLJEI/pQFPTRVPlIPl8X9NGI3r3614BIUnRyMhZ33w5sr9t2S+z+VU2e9zhw8XwaKLKojhyBoaHqw6h0E06rr8rn6y4odeqpwTScsbGZtW9EEkKfjBWJqxvRR0GfrxsSDQzUTa+MnqM6vSSQgl4kbnS0pkbf7DKwAwMwPR3bED3n8OGFa5vIcVLQi0RKJXj3XTjjjOqmiYnGJffBwWDp+qqo3HPo0OyDRXpMQS8SiUL6zDOrmyYnoa/B/5Jly5oE/ZtvLlz7RI6Tgl4k8sYbwW3sZGyzoB8cDCbYVEW/HKLXEEkQBb1IJBqN143oc7nZh0aXE6yO6leuDK5IohG9JJCCXiTSYEQ/MVF7YfBIFPTRYpdA8AtCI3pJIAW9SCQajceCfmqqcdCfcEJwW/Nh2DPP1IheEklBLxI5eDCYJhm7ysjUVOOLjkTXja0J+ve9L3gNkYRR0ItEXnkF1q+v2TQ9PVOmiYs+/FoT9OvWwb59dWdpRXpPQS8SaRL0jS46EpVuaq41sm5dMBdfdXpJGAW9CATTZ/btmxX07o1H9NHaNzVBHz33lVcWooUix01BLwLw+uvBXMpY0BeLwW39WvQAp58e3L71Vmyjgl4SSkEvArA7XD37Ax+obtq3L7hdvXr24WeHV0V+/fXYxvPOC1Y/262VuCVZFPQiAM8+G9xeckl1UxT0saVvqtatC25rlrYZHIQLL5x5LZGEUNCLAOzaBWvWwGmnVTft3x/cnnXW7MOjoH/77bodl1wSvJZIgijoRQCeeAIuu6xmUzSiP+ec2YdHJ2NnLVY5PBzMpX/tta43UeR4KehF9uyBvXvh05+u2fzyy8Ht8HDjpw0O1p2MBbgqvNjaAw90t40i86CgF/nhD4PbjRtrNkeD8g0bGj/tpJPqplcCfOhDsHbtzGuKJEBHQW9mG83sRTPbY2Y3Ndg/aGZ/Hu7/qZmti+27Odz+opl9pottF5m/YhHuuAM+9Sm44IKaXa+8Eix10GiZYghKOseOwfh4bKMZ/PZvw4MPwjPPLFy7ReagbdCbWQ64E7gGuAjYZGYX1R32FeCIu18A/CHwB+FzLwKuBz4EbAS+E76eSG+5B0m+aRP86lfwzW/W7H711eCqguef3/wlrrwyuP2jP6rb8bWvBQujfeELQe2/5golIovPvM26HGb2MeCb7v6Z8PHNAO7+n2LHPBAe84SZ5YE3gNOBm+LHxo9r9T2Hh4d9586dc+7Mir5jTPvC/x5pv5JJg2vPLcj36US8Lc1esXV7k7Ryi3fpZ1vDDKx2zBNl85/8CXzxizPbC4UCIyMjQPCL4PTTg2Pz+bqRv1eCFdFqv1HXmz4XZsf3Tro3vpxilvWqz4N9U7xbXnlczzWzp9294RmlfKONddYA+2OPDwBXNDvG3ctm9i5wWrj9ybrnrmnSyM3AZoChoSEKhUIHTau1evADHQT9QsW01zzzeP9TzW6L1zyatX9Bvk+D79fo+3jdIZ18n7YHdfj+tHmdxv2p+079eaaXLaeSn/3foK/P+dzn3mDNmgPE/ykWi8Waf5u3334yd911AUeP5qlU6hrlTm5iAiuXg+TwBfk11ZH5rLNW9zYvCb3q84r+SQqFuQ9y2+kk6BeFu28BtkAwoo9GTXPx2rEuN2oO4iO9pSL7fb4g/JpR3+eREfj611u9RoOFclIm++/zbL3t89ldf8VOTsYeBNbWtaJ+0e3qMWHp5mTgcIfPFRGRBdRJ0O8ANpjZejMbIDi5uq3umG3ADeH9zwM/8aD4vw24PpyVsx7YADzVnaaLiEgn2pZuwpr7jcADQA7Y6u7Pm9ltwE533wZ8H/hfZrYHGCX4ZUB43F8Au4Ey8DV3n16gvoiISAMd1ejdfTuwvW7bLbH7JeALTZ77+8Dvz6ONIiIyD/pkrIhIxinoRUQyTkEvIpJxCnoRkYxruwRCL5jZW8CrvW7HHK0G6i9DkXXq89KgPqfDue5+eqMdiQz6NDKznc3Wmcgq9XlpUJ/TT6UbEZGMU9CLiGScgr57tvS6AT2gPi8N6nPKqUYvIpJxGtGLiGScgl5EJOMU9PNkZreb2S/N7Dkzu8/MTonty+SF0c3sC2b2vJlVzGy4bl8m+wxgZhvDfu0xs5t63Z6FYGZbzeyQmf0itu1UM3vIzF4Ob1f1so3dZGZrzexhM9sd/pv+t+H2TPVZQT9/DwG/5u4fBl4CbobMXxj9F8A/BB6Nb8xyn8N+3AlcA1wEbAr7mzV3E7x3cTcBP3b3DcCPw8dZUQb+nbtfBPw68LXwfc1UnxX08+TuD7p7OXz4JDPXAbsOuNfdJ9z9FWAPcHkv2tht7v6Cu7/YYFdm+0zQjz3uvtfdJ4F7CfqbKe7+KME1JeKuA34Q3v8B8A8Ws00Lyd1fd/efhfffA14guK51pvqsoO+ufw7cH95vdFH1hhdGz5As9znLfWtnyN1fD++/AQz1sjELxczWAR8BfkrG+pyYi4MnmZn9X+DMBru+4e5/FR7zDYI/A/90Mdu2UDrpsyw97u5mlrk52Wa2Evg/wO+6+1Ezq+7LQp8V9B1w96ta7TezLwGfA/6ez3wwIdUXRm/X5yZS3ec2sty3dt40s7Pc/XUzOws41OsGdZOZ9ROE/J+6+1+GmzPVZ5Vu5snMNgL/AbjW3cdju5bihdGz3OcdwAYzW29mAwQnnbf1uE2LZRtwQ3j/BiAzf9FZMHT/PvCCu//X2K5M9VmfjJ2n8ILog8DhcNOT7v4vw33fIKjblwn+JLy/8auki5n9JvA/gNOBd4Bd7v6ZcF8m+wxgZp8F/huQA7aG10POFDO7BxghWKb3TeBW4EfAXwDnECwf/o/dvf6EbSqZ2SeAx4CfA5Vw838kqNNnps8KehGRjFPpRkQk4xT0IiIZp6AXEck4Bb2ISMYp6EVEMk5BLyKScQp6EZGM+/+Ry+KqieoC3QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# график модуля дискретного преобразования Фурье\n",
    "f = [ math.exp(-i*i)  for i in x]\n",
    "discr_fourier_pts_1 = abs(np.fft.fftshift(np.fft.fft(f)*s)) \n",
    "#fig1 = plt.figure(1)\n",
    "#axes1 = fig1.subplots(1, 1)\n",
    "axes1.plot(fx, discr_fourier_pts_1, 'b')\n",
    "axes1.grid(True)\n",
    "plt.show()\n",
    "fig1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "24efd2c6",
   "metadata": {},
   "source": [
    "# Функция 2\n",
    "$$ cos(\\frac{\\pi*t}{2})  $$ если $$ -1 \\leq t \\leq 1 $$,  0 иначе\n",
    "$$  \\int_{-1}^{1}cos(\\frac{\\pi*t}{2}) =  -\\frac{2*(e^{4*I*\\Pi*k}+1)*e^{-2*I*\\Pi*k}}{\\pi*(16*k^2 - 1)} $$ \n",
    "$$ abs(..) = \\frac{4*|(cos(2 * \\pi k))|}{\\pi|16*k^2 - 1|}$$ - рассчитано в maple"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "2e3d3df2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.02\n"
     ]
    }
   ],
   "source": [
    "l = -10\n",
    "r = 10\n",
    "x = []\n",
    "N = 1000\n",
    "s = (r -l)/N\n",
    "print(s)\n",
    "for i in range(N):\n",
    "    x.append(l+s*i)\n",
    "d = 1 / (r-l)\n",
    "fx = [d * p for p in range(int(-N / 2), int(N / 2))] # не включая последнюю точку"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "4b3ad253",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## График модуля непрерывного преобразования фурье\n",
    "fig1 = plt.figure(1)\n",
    "axes1 = fig1.subplots(1, 1)\n",
    "sin_sig = array([4*abs(math.cos(2*math.pi*t))/(math.pi* abs(16*t*t - 1)) for t in x])\n",
    "axes1.plot(fx, sin_sig, 'r')\n",
    "axes1.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "246a12e1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# график модуля дискретного преобразования Фурье\n",
    "f = []\n",
    "for i in x:\n",
    "    if abs(i) > 1:\n",
    "        f.append(0)\n",
    "    else:\n",
    "        f.append(cos(math.pi*i/2))\n",
    "discr_fourier_pts_1 = abs(np.fft.fftshift(np.fft.fft(f)*s)) \n",
    "#fig1 = plt.figure(1)\n",
    "#3axes1 = fig1.subplots(1, 1)\n",
    "axes1.plot(fx, discr_fourier_pts_1 , 'b')\n",
    "axes1.grid(True)\n",
    "plt.show()\n",
    "fig1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "28f47719",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
